import { ElNotification, ElMessageBox } from 'element-plus'
import nProgress from 'nprogress'
//成功提示
export function toast(message,type = "success",dangerouslyUseHTMLString = true){
  ElNotification({
      message,
      type,
      dangerouslyUseHTMLString,
      duration: 3000
    })
}


export function showModal(content = "提示内容",type = "warning",title =""){
    return  ElMessageBox.confirm(
    content,
    title,
    {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      type,
    }
  )
}

//显示全屏loading
export function showFullLoading(){
  nProgress.start()
}
//隐藏全屏loading
export function hideFullLoading(){
  nProgress.done()
}


//弹出输入框--value拿到重命名之前的名字
export function showPrompt(tip,value=""){
    return  ElMessageBox.prompt(tip, '', {
    confirmButtonText: '确认',
    cancelButtonText: '取消',
    inputValue:value
  })
}


//将query对象转成url需要传递的对象参数
export function queryParams(query){
    let q = []
  for (const key in query) {
    if(query[key]){
      q.push(`${key}=${encodeURIComponent(query[key])}`)
    } 
  }
  let r = q.join("&") //拼接之后的效果是limit=10&keyword=ceshi
  r = r ? "?"+r : ""
  return r
}


//上移
export function useArrayMoveUp(arr,index){
  swapArray(arr,index,index - 1)
}

//下移
export function useArrayMoveDown(arr,index){
  swapArray(arr,index,index + 1)
}


function swapArray(arr,index1,index2){
  //删除-覆盖   返回被删除的元素-覆盖
  arr[index1] = arr.splice(index2,1,arr[index1])[0]
  return arr
}


//sku排序算法
export function cartesianProductOf() {
  return Array.prototype.reduce.call(arguments, function (a, b) {
      var ret = [];
      a.forEach(function (a) {
          b.forEach(function (b) {
              ret.push(a.concat([b]));
          });
      });
      return ret;
  }, [
      []
  ]);
}
